Electronic devices such as electronic book readers (“e-book readers”), cellular telephones, portable media players, tablet computers, netbooks, personal digital assistants, and other electronic devices, rely on electrical power to function.
Within these electronic devices, several components utilize significant amounts of power during operation, including the processor(s) and peripheral devices. These peripheral devices include external memory interfaces (EMIs), Universal Serial Bus (USB) controllers, serial peripheral interfaces (SPIs), inter-integrated circuit (I2C) bus controllers, audio devices, image processing unit (IPU), input devices, realtime clock, synchronous serial interface (SSI), NOR flash memory controller, NAND flash memory controller (NFC), smart direct memory access controller (SDMA), multi-media card (MMC) storage controller, and so forth. In some implementations, the USB, NFC, IPU, SDMA, and other peripherals may move data to and from the SDRAM via the EMI. These peripheral devices may reside on the same “chip” or die as the processor, be on another die, or a combination.
A processor not actively in use, but idling in a run mode, consumes significant quantities of power. This idling wastes energy as well as increasing the amount of heat dissipated by the electronic device. Reducing power consumption increases the usable time for a portable device operating from a battery. Reducing power consumption also reduces the heat dissipated by the electronic device, allowing it to operate at a cooler temperature and thus increasing the life of the equipment and simplifying design for cooling.
Various schemes have been put forth to reduce power consumption in portable consumer devices by placing the processor of the device and the peripherals into a “sleep” mode. Typically, entering the sleep mode involves turning off unused portions of and/or reducing clock speed of the microprocessor.
However, these techniques result in only moderate power savings. Furthermore, the current techniques used to enter and exit sleep mode often introduce unacceptable latencies to execution of commands, and may cause system instability upon re-entry to a running mode.